#!/bin/bash

# 打印欢迎语
echo "欢迎使用 FRPS 一键部署脚本！"
echo "本脚本将帮助您快速部署 FRPS 服务。"
echo "请根据提示输入相关信息，按回车跳过将自动生成随机值。"
echo ""

# 获取服务器 IP 地址
SERVER_IP=$(hostname -I | awk '{print $1}')
# 询问用户输入用户名、密码和 token
echo "请输入后台登录用户名（可选，按回车跳过）："
read webServer_user
if [ -z "$webServer_user" ]; then
    webServer_user=$(openssl rand -base64 12 | tr -dc 'a-zA-Z0-9' | cut -c1-12)
fi

echo "请输入后台登录密码（可选，按回车跳过）："
read webServer_password
if [ -z "$webServer_password" ]; then
    webServer_password=$(openssl rand -base64 16 | tr -dc 'a-zA-Z0-9' | cut -c1-16)
fi

echo "请输入 auth token（可选，按回车跳过）："
read auth_token
if [ -z "$auth_token" ]; then
    auth_token=$(openssl rand -base64 32 | tr -dc 'a-zA-Z0-9' | cut -c1-32)
fi

# 创建目录结构
rm -r /docker/frps
mkdir -p /docker/frps/logs
chmod -R 777 /docker/frps

# 进入目标目录
cd /docker/frps

cat <<EOF > frps.toml
bindPort = 7000
webServer.addr = "0.0.0.0" # 后台管理地址
webServer.port = 7500 # 后台管理端口
webServer.user = "$webServer_user" # 后台登录用户名
webServer.password = "$webServer_password" # 后台登录密码
auth.method = "token"
auth.token = "$auth_token"
vhostHTTPPort = 8104  # 虚拟主机端口
vhostHTTPSPort = 8105  # SSL 虚拟主机端口
log.to = "/etc/frp/logs/frps.log"  # 日志配置
log.level = "info"
log.maxDays = 7
EOF

# 将内容写入 docker-compose.yml 文件
cat <<EOF > docker-compose.yml
services:
  frps:
      image: snowdreamtech/frps:latest
      container_name: frps
      restart: unless-stopped
      ports:
        - "7000:7000"  # FRPS 默认通信端口
        - "7500:7500"  # FRPS Web Dashboard 端口
        - "8104:8104"  # 映射 HTTP 虚拟主机端口
        - "8105:8105"  # 映射 HTTPS 虚拟主机端口
        - "8106:8106"  # 映射客户端指定的远程端口ssh 服务
        - "8111:8111"  # aria2 服务
        - "8118:8118"  # alist
        - "8117:8117"  # calibre
      environment:
        - TZ=Asia/Shanghai
      volumes:
        - /docker/frps/frps.toml:/etc/frp/frps.toml  # 映射本地的 frps.toml 文件
        - /docker/frps/logs:/etc/frp/logs  # 映射日志目录
EOF

# 启动 Docker Compose
docker compose up -d

echo "FRPS 启动成功！"
echo "后台地址：http://$SERVER_IP:7500"
echo "后台地址：http://$PUBLIC_SERVER_IP:7500"
echo "后台登录用户名：$webServer_user"
echo "后台登录密码：$webServer_password"
echo "auth token：$auth_token"
echo "注意：请不要将登录密码告知他人，以防他人登录您的服务器。"